#推导式
# 列表推导式
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
new_names = [name.upper()for name in names if len(name)>3]
# [表达式 for 变量 in 列表 if 条件]
# [out_exp_res for out_exp in input_list if condition]
# out_exp_res：列表生成元素表达式，可以是有返回值的函数。
# for out_exp in input_list：迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。
# if condition：条件语句，可以过滤列表中不符合条件的值。
print(new_names)

#字典推导式
# { key_expr: value_expr for value in collection if condition }
listdemo = ['Google','Runoob', 'Taobao']
# 将列表中各字符串值为键，各字符串的长度为值，组成键值对
newdict = {key:len(key) for key in listdemo}
print(newdict)
dic = {x: x**2 for x in (2, 4, 6)}
print(dic)

#集合推导式
# { expression for item in Sequence if conditional }
setnew = {i**2 for i in (1,2,3)}

# 元组推导式
# (expression for item in Sequence if conditional )
a = (x for x in range(1,10))